0. Load data

Ta sẽ kiểm tra các thông tin cơ bản trong các dataframe vừa được load lên ở trên

a. Playlist dataframe

Ý nghĩa các trường trong playlist dataframe

Tên cột Ý nghĩa
playlist_id Giá trị ID unique ứng với playlist
playlist_name Tên của playlist
description Chuỗi mô tả playlist
num_tracks Số lượng bài hát có trong playlist
num_followers Số người theo dõi playlist

Nhận xét: ta thấy tên playlists bị trùng nhau khá nhiều, thoạt nhìn có vẻ dữ liệu thu được bị nhiễu. Tuy nhiên, nếu để ý thì ID, num_tracks và num_followers của chúng không giống nhau, nên những playlist trùng tên này là những playlist khác nhau.

Nhận xét: dễ dàng nhận thấy trong tập các playlist, có những playlist không chứa bài hát nào cả, ta sẽ xem đó là những playlist nào

Khá ngạc nhiên khi những playlist không có track nào nhưng vẫn có số lượt follower đáng kể!

Nhận xét: ta thấy tỉ lệ missing của trường description khá lớn, điều này cũng dễ hiểu vì đây chỉ là trường mô tả playlist, thường bị bỏ qua khi tạo một playlist mới. Ta sẽ thay thế các vị trí bị thiếu bằng string 'None'.

b. Track dataframe

Ý nghĩa của các trường trong track dataframe:

Tên cột Ý nghĩa
track_id Unique ID của bài hát
track_name Tên của bài hát
playlist_id ID của playlist (ở phần a.) chứa bài hát
playlist_name Tên của playlist ứng với playlist_id
artist_ids IDs của các nghệ sỹ trình diễn bài hát
artist_names Tên của các nghệ sỹ trình diễn bài hát
album_id ID của album chứa bài hát
album_name Tên của album ứng với album_id
track_duration_ms Độ dài của bài hát (ms)

Nhận xét: ta thấy có 2 trường album_nametrack_name có những dòng bị thiếu dữ liệu (chiếm tỉ lệ rất nhỏ). Cả 2 trường này đều là thông tin về tên bài hát/album nên cũng không quá quan trọng do chúng ta sẽ chủ yếu sử dụng các thông tin về âm thanh của bài hát để giải quyết bài toán. Ta sẽ thay các giá trị bị thiếu bằng 'None'.

c. Audio feature dataframe

Ý nghĩa của các trường trong audio track dataframe:

Tên cột Ý nghĩa
id ID của bài hát
danceability Mô tả bài hát có phù hợp để nhảy hay không dựa trên sự kết hợp, độ mạnh yếu của nhịp độ, nhịp điệu bài hát, có giá trị từ 0.0 - 1.0
energy Độ đo thể hiện tính chất năng lượng của bài hát thông qua cường độ. Thông thường một bài hát energetic sẽ nhanh, ồn ào, có giá trị từ 0.0 - 1.0
key Cao độ trung bình của hát, giá trị là số nguyên, tính theo chuẩn Pitch Class Notation, nếu không có cao độ giá trị là -1
loudness Độ to trung bình của bài hát (tính theo đơn vị dB), giá trị thường rơi vào khoảng -60.0 - 0.0 dB
mode Biểu thị thể thức (chính hoặc phụ) của một bản nhạc, loại âm hưởng mà nội dung du dương của nó được bắt nguồn. Chỉ bao gồm 2 giá trị là 1 (chính) và 0 (phụ)
speechiness Xác suất thể hiện có sự hiện diện của tiếng nói (khác với tiếng hát) trong bài hát hay không. Có giá trị trong khoảng 0.0 - 1.0, giá trị càng cao thì đây khả năng cao là bài diễn thuyết, sách nói,...
acousticness Cường độ Acoustic của bài hát hay nói cách khác là xác suất bài hát này có tính chất acoustic, có giá trị từ 0.0 - 1.0
instrumentalness Độ đo thể hiện tính instrumental (không lời) của bài hát, có giá trị trong khoảng 0.0 - 1.0, giá trị càng cao thì càng ít giọng hát trong bài hát
liveness Độ đo thể hiện tính live (nhạc sống, có sự hiện diện của khán giả trong lúc thu âm) của bài hát, có giá trị trong khoảng 0.0 - 1.0
valence Biểu thị tính tích cực của bài hát, giá trị càng cao thì bài hát càng có tính chất tích cực (vui, phấn khởi), càng thấp thì bài hát càng buồn
tempo Nhịp độ trung bình của bài hát tính theo nhịp mỗi phút (BPM)
analysis_url URL chứa thông tin phân tích chi tiết audio của bài hát
time_signature Số chỉ nhịp của bài

d. Merge các dataframes lại với nhau

1. Kiểm tra thông tin DataFrame thu thập được.

2. Phân tích và khám phá dữ liệu (EDA)

Nhóm câu hỏi 1: Liên quan đến playlist.

Câu hỏi 1: Số lượng bài hát và lượt theo dõi của mỗi playlist phân bố như thế nào?

Nhận xét:

Câu hỏi 2: Hãy liệt kê các tên playlist có số lượng người theo dõi nhiều nhất (thông tin này sẽ có lợi cho quá trình đề xuất bài hát)

Nhận xét:

Câu hỏi 3: Hãy liệt kê các tên playlist có số lượng tracks nhiều nhất.

Nhận xét: playlist có nhiều bài hát nhất là The Critics Choice 2012, có thể đây là playlist tập hợp những bài hát được lựa chọn để nghe trong năm 2012. Dựa vào description của các playlists, ta có thể thấy những playlist chứa nhiều tracks nhất là tập hợp những audio để học một ngôn ngữ nào đó (Italian, Chinese, German, ...) hoặc là tập hợp những công trình/tác phẩm của một tác giả nào đó, ...

Câu hỏi 4: Số lượng tracks của 20 playlist hot nhất

Nhận xét: Dựa vào bảng và biểu đồ trên, ta thấy hầu hết các top playlists có số bài hát nhỏ hơn 100 bài. Những playlist có nhiều bài hát hơn cũng chỉ có nhiều nhất khoảng 300 bài hát. Điều này phần nào thể hiện xu thế những playlist phổ biến có số lượng track không quá nhiều.

Câu hỏi 5: Các từ được sử dụng nhiều nhất để đặt tên playlist và mô tả playlist

Nhận xét: Dễ dàng nhận thấy những từ phổ biến nhất trong tên bài hát là những từ chỉ thể loại nhạc như Rock, Pop, Metal, Classical, ... hay những từ thể hiện mục đích của playlist như Happy Birthday, Pride, Party, Work, Chill, ... Những từ này được chọn vì nó thể hiện rõ ràng theme của playlist, dễ hình dung nội dung playlist khi đọc.

Nhận xét: Khác với những từ trong tên playlist, những từ phổ biến nhất để mô tả playlist là những từ mô tả tập hợp, bài hát như collection, playlist, track, music, song và những từ chỉ thể loại như cover, rock, pop, classic, ...

Nhóm câu hỏi 2: Liên quan đến tác giả bài hát (artist) và album (album)

Câu hỏi 1: Hãy liệt kê các nghệ sĩ (artist) và album có số lượng tracks nhiều nhất.

Nhận xét: Những nghệ sĩ có nhiều bài hát nhất bao gồm cả những nghệ sĩ trẻ (Talor Swift, Ed Sheeran, ...), những nghệ sĩ lâu năm (The Beatles, Johnny Cash), công ty phát hành sách (Penton Overseas), nhà soạn nhạc (Beethoven). Đây đều là những tên tuổi hàng đầu được nhiều người biết đến.

Nhóm câu hỏi 3: Liên quan đến các bài hát.

Câu hỏi 0: Bài hát nào xuất hiện trong nhiều playlist nhất?

Nhận xét: những bài hát ở trên đều là những bài hát mớiphổ biến, đến từ những nghệ sĩ nổi tiếng. Có thể đây là lý do chúng được thêm vào nhiều playlists khác nhau.

Câu hỏi 1: Thời lượng của các bài hát được phân bố như thế nào?

Nhận xét: Ta thấy hầu hết các bài hát đều có độ dài dưới 250s (khoảng 4p)

Câu hỏi 2: Các thuộc tính liên quan đến tâm trạng bài hát (Danceability, Valence, Energy, Tempo) được phân bố như thế nào?

Nhận xét:

Câu hỏi 3: Các thuộc tính liên quan đến đặc điểm bài hát (Loudness, Speechiness, Instrumentalness) được phân bố như thế nào?

Nhận xét:

Câu hỏi 4: Các thuộc tính liên quan đến nội dung bài hát (Liveness, Acousticness) được phân bố như thế nào?

Nhận xét:

Câu hỏi 5: Tương quan giữa các thuộc tính trên (Danceability, Valence, Energy, Tempo, Loudness, Speechiness, Instrumentalness, Liveness, Acousticness, Duration) là như thế nào?

Nhận xét: dựa vào heatmap trên, ta có thể đưa ra một vài nhận xét về tương quan giữa các biến: